﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.mssql;
using SharpSqlAnalyzer.nodes.oracle;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200030E RID: 782
	public class TMergeSqlNode : TParseTreeNode
	{
		// Token: 0x06001BB2 RID: 7090 RVA: 0x0032F927 File Offset: 0x0032DB27
		public void setWhenClauses(List<TMergeWhenClause> mwcList)
		{
			this.whenClauses = mwcList;
		}

		// Token: 0x17000653 RID: 1619
		// (get) Token: 0x06001BB4 RID: 7092 RVA: 0x0032F939 File Offset: 0x0032DB39
		// (set) Token: 0x06001BB3 RID: 7091 RVA: 0x0032F930 File Offset: 0x0032DB30
		public virtual TErrorLoggingClause ErrorLoggingClause
		{
			get
			{
				return this.errorLoggingClause;
			}
			set
			{
				this.errorLoggingClause = value;
			}
		}

		// Token: 0x17000654 RID: 1620
		// (get) Token: 0x06001BB6 RID: 7094 RVA: 0x0032F94A File Offset: 0x0032DB4A
		// (set) Token: 0x06001BB5 RID: 7093 RVA: 0x0032F941 File Offset: 0x0032DB41
		public virtual TOutputClause OutputClause
		{
			get
			{
				return this.outputClause;
			}
			set
			{
				this.outputClause = value;
			}
		}

		// Token: 0x17000655 RID: 1621
		// (get) Token: 0x06001BB8 RID: 7096 RVA: 0x0032F95B File Offset: 0x0032DB5B
		// (set) Token: 0x06001BB7 RID: 7095 RVA: 0x0032F952 File Offset: 0x0032DB52
		public virtual TOptionClause OptionClause
		{
			get
			{
				return this.optionClause;
			}
			set
			{
				this.optionClause = value;
			}
		}

		// Token: 0x17000656 RID: 1622
		// (get) Token: 0x06001BB9 RID: 7097 RVA: 0x0032F963 File Offset: 0x0032DB63
		// (set) Token: 0x06001BBA RID: 7098 RVA: 0x0032F96B File Offset: 0x0032DB6B
		public virtual TObjectNameList ColumnList
		{
			get
			{
				return this.columnList;
			}
			set
			{
				this.columnList = value;
			}
		}

		// Token: 0x17000657 RID: 1623
		// (get) Token: 0x06001BBB RID: 7099 RVA: 0x0032F974 File Offset: 0x0032DB74
		// (set) Token: 0x06001BBC RID: 7100 RVA: 0x0032F97C File Offset: 0x0032DB7C
		public virtual List<TMergeWhenClause> WhenClauses
		{
			get
			{
				return this.whenClauses;
			}
			set
			{
				this.whenClauses = value;
			}
		}

		// Token: 0x17000658 RID: 1624
		// (get) Token: 0x06001BBD RID: 7101 RVA: 0x0032F985 File Offset: 0x0032DB85
		public virtual TFromTable TargetTable
		{
			get
			{
				return this.targetTable;
			}
		}

		// Token: 0x17000659 RID: 1625
		// (get) Token: 0x06001BBE RID: 7102 RVA: 0x0032F98D File Offset: 0x0032DB8D
		public virtual TFromTable UsingTable
		{
			get
			{
				return this.usingTable;
			}
		}

		// Token: 0x1700065A RID: 1626
		// (get) Token: 0x06001BBF RID: 7103 RVA: 0x0032F995 File Offset: 0x0032DB95
		public virtual TExpression Condition
		{
			get
			{
				return this.condition;
			}
		}

		// Token: 0x06001BC0 RID: 7104 RVA: 0x0032F99D File Offset: 0x0032DB9D
		public override void init(object arg1, object arg2, object arg3)
		{
			this.targetTable = (TFromTable)arg1;
			this.usingTable = (TFromTable)arg2;
			this.condition = (TExpression)arg3;
		}

		// Token: 0x04001A03 RID: 6659
		private TErrorLoggingClause errorLoggingClause;

		// Token: 0x04001A04 RID: 6660
		private TOutputClause outputClause;

		// Token: 0x04001A05 RID: 6661
		private TOptionClause optionClause;

		// Token: 0x04001A06 RID: 6662
		private TFromTable targetTable;

		// Token: 0x04001A07 RID: 6663
		private TFromTable usingTable;

		// Token: 0x04001A08 RID: 6664
		private TExpression condition;

		// Token: 0x04001A09 RID: 6665
		private TObjectNameList columnList;

		// Token: 0x04001A0A RID: 6666
		public TCTEList cteList;

		// Token: 0x04001A0B RID: 6667
		private List<TMergeWhenClause> whenClauses;
	}
}
